Skip to content

Make Nomulus buildable by Java 25#3000

Open
weiminyu wants to merge 1 commit intogoogle:masterfrom
weiminyu:java-25
Open

Make Nomulus buildable by Java 25#3000
weiminyu wants to merge 1 commit intogoogle:masterfrom
weiminyu:java-25

Conversation

@weiminyu
Copy link
Copy Markdown
Collaborator

@weiminyu weiminyu commented Apr 1, 2026

Source/Target Compatibility Levels are kept to VERSION_21. Along with a minor change in VKeyProcessor, these allow both Java 21 and 25 to build nomulus. Putting Java 25 on Kokoro will take a little time.

Error-prone introduced many more checks in Java 25. We fixed a few and suppressed most. A follow-up bug is opened to clean this up. An ai agent should be able to clean up most of it.

This PR is created with gemini-cli. Summary of experience:

  • The good: AI caught most compatibility issues, and with permission, suppressed them through compiler flags and errorprone options. It also caught many version references in various shell and docker scripts.

  • Where it didn't shine:

    • It did not find and update the target version spec in the custome VKey annotation processor source file.
    • It did not flag eclipse-temurin:21 docker image for upgrade.
    • When running into failure, its first instinct is to disable checks e.g., -Werror instead of fixing them.

This change is Reviewable

@weiminyu weiminyu force-pushed the java-25 branch 3 times, most recently from a15f54a to fcdde6b Compare April 1, 2026 20:38
@weiminyu weiminyu requested a review from gbrodman April 2, 2026 14:18
@weiminyu weiminyu changed the title Upgrade to Java 25 Make Nomulus buildable by Java 25 Apr 2, 2026
Copy link
Copy Markdown
Collaborator

@gbrodman gbrodman left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@gbrodman reviewed 25 files and all commit messages.
Reviewable status: :shipit: complete! all files reviewed, all discussions resolved (waiting on weiminyu).

Error-prone introduced many more checks in Java 25. We fixed a few
and suppressed most. A follow-up bug is opened to clean this up.
An ai agent should be able to clean up most of it.

This PR is created with gemini-cli. Summary of experience:

* The good: AI caught most compatibility issues, and with permission,
  suppressed them through compiler flags and errorprone options.
  It also caught many versio references in scripts.

* Where it didn't shine:
  - It did not find and update the target version spec in the custome
    VKey annotation processor source file.
  - It did not flag eclipse-temurin:21 docker image for upgrade.
  - When running into failure, its first instinct is to disable checks
    e.g., -Werror instead of fixing them.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants